package cn.b.sky.mes.pp.dao;

import java.util.List;

import cn.b.sky.mes.pp.model.OrderType;
import cn.b.sky.mes.pp.model.condition.OrderTypeCondition;
import org.apache.ibatis.annotations.Param;

/**
 * 
 * <strong>Title : OrderTypeDao.java<br></strong>
 * <strong>Package : cn.b.sky.mes.pp.dao<br></strong>
 * <strong>Description : </strong>订单类型持久层接口<br> 
 * <strong>Create on : 2016年1月7日 上午9:49:09<br></strong>
 * <p>
 * @author dapeng.li<br>
 * @version <strong>v1.0.0</strong><br>
 * <br>
 * <strong>修改历史:</strong><br>
 * 修改人 | 修改日期 | 修改描述<br>
 * -------------------------------------------<br>
 * <br>
 * <br>
 */
public interface OrderTypeDao {
  /**
   * 
   * <strong>Title : selectOrderTypesByCondition<br></strong>
   * <strong>Description : </strong>根据条件查询订单类型列表<br> 
   * <strong>Create on : 2016年1月7日 上午9:51:40<br></strong>
   * <p>
   * @param condition
   * @return
   * List<OrderType>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<OrderType> selectOrderTypesByCondition(OrderTypeCondition condition);

  /**
   * 
   * <strong>Title : selectOrderTypeCountByCondition<br></strong>
   * <strong>Description : </strong>根据条件查询订单类型数量<br> 
   * <strong>Create on : 2016年1月7日 上午10:03:32<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int selectOrderTypeCountByCondition(OrderTypeCondition condition);

  /**
   * 
   * <strong>Title : insertOrderType<br></strong>
   * <strong>Description : </strong>保存订单类型到数据库<br> 
   * <strong>Create on : 2016年1月7日 上午9:54:48<br></strong>
   * <p>
   * @param orderType
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertOrderType(OrderType orderType);

  /**
   * 
   * <strong>Title : updateOrderType<br></strong>
   * <strong>Description : </strong>修改订单类型数据<br> 
   * <strong>Create on : 2016年1月7日 上午9:55:10<br></strong>
   * <p>
   * @param orderType
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updateOrderType(OrderType orderType);

  /**
   * 
   * <strong>Title : deleteOrderTypeByPK<br></strong>
   * <strong>Description : </strong>删除订单类型数据<br> 
   * <strong>Create on : 2016年1月7日 上午9:55:30<br></strong>
   * <p>
   * @param siteCode
   * @param orderTypeCode
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deleteOrderTypeByPK(@Param("siteCode") String siteCode, @Param("orderTypeCode") String orderTypeCode);

  /**
   * 
   * <strong>Title : getOrderType<br></strong>
   * <strong>Description : </strong>根据主键查询订单类型<br> 
   * <strong>Create on : 2016年1月7日 上午10:27:53<br></strong>
   * <p>
   * @param siteCode
   * @param id
   * @return
   * OrderType
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  OrderType getOrderType(@Param("siteCode") String siteCode, @Param("orderTypeCode") String orderTypeCode);

  /**
   * 
   * <strong>Title : selectAllUnlockedOrderTypes<br></strong>
   * <strong>Description : </strong>查询全部未锁定的<br> 
   * <strong>Create on : 2016-1-7 下午1:32:27<br></strong>
   * <p>
   * @return
   * List<OrderType>
   * @throws 
   * @author lidapeng<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<OrderType> selectAllUnlockedOrderTypes(String siteCode);
  
  /**
   * 
   * <strong>Title : selectAllOrderTypes<br></strong>
   * <strong>Description : </strong>查询所有的订单类型，供查询界面使用<br> 
   * <strong>Create on : 2016年5月19日 上午9:50:00<br></strong>
   * <p>
   * @param siteCode
   * @return
   * List<OrderType>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<OrderType> selectAllOrderTypes(String siteCode);
}
